/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hojano6;

/**
 * @author Andrae Magaly Mendoza, 11331 
 */
import java.util.ArrayList;
public class StackArrayList <E> extends AbstractStack <E>{
    
 private ArrayList <E> datos;

 // Constructor
 public StackArrayList() {
 this.datos = new ArrayList <E> ();
                         }
    
 /**
  * Guardar un dato en la pila.
  * post: Agrega un dato a la pila.
  * @param dato  
  */
 
 @Override
  public void push(E dato) {
  this.datos.add(dato);    }

 /**
  * Retira un dato de la pila, el ultimo en ingresar.
  * pre: La pila no se encuentra vacia.
  * post: Se remueve el ultimo dato.
  */
 
 @Override
  public E pop() {
  return this.datos.remove(size()-1);  
                 }

 /**
  * Limpia la pila. 
  */
 
 @Override
  public void clear() {
  datos.clear();
                      }

/**
 * Devuelve el numero de datos que contiene la pila. 
 */
   
 @Override
  public int size() {
  return this.datos.size();
                      }   
 

 /**
  * Verifica el ultimo dato ingresado.
  * pre: pila no se encuentra vacia.
  * post: Se regresa el valor del dato mas proximo a remover.
  */
    
 @Override
  public E peek() {
  return this.datos.get(size()-1);
                    }

}
